std::unordered | 您所在的位置:网站首页 › unorderd set › std::unordered |
C++
语言
标准库头文件
自立与有宿主实现
具名要求
语言支持库
概念库 (C++20)
诊断库
工具库
字符串库
容器库
迭代器库
范围库 (C++20)
算法库
数值库
本地化库
输入/输出库
文件系统库 (C++17)
正则表达式库 (C++11)
原子操作库 (C++11)
线程支持库 (C++11)
技术规范
容器库
array(C++11)
vector
deque
forward_list(C++11)
list
set
multiset
map
multimap
unordered_set(C++11)
unordered_multiset(C++11)
unordered_map(C++11)
unordered_multimap(C++11)
stack
queue
priority_queue
span(C++20)
std::unordered_set
成员函数
unordered_set::unordered_set
unordered_set::~unordered_set
unordered_set::operator=
unordered_set::get_allocator
迭代器
unordered_set::beginunordered_set::cbegin
unordered_set::endunordered_set::cend
容量
unordered_set::empty
unordered_set::size
unordered_set::max_size
修改器
unordered_set::clear
unordered_set::insert
unordered_set::emplace
unordered_set::emplace_hint
unordered_set::erase
unordered_set::swap
unordered_set::extract(C++17)
unordered_set::merge(C++17)
查找
unordered_set::count
unordered_set::find
unordered_set::contains(C++20)
unordered_set::equal_range
桶接口
unordered_set::begin(size_type)unordered_set::cbegin(size_type)
unordered_set::end(size_type)unordered_set::cend(size_type)
unordered_set::bucket_count
unordered_set::max_bucket_count
unordered_set::bucket_size
unordered_set::bucket
哈希策略
unordered_set::load_factor
unordered_set::max_load_factor
unordered_set::rehash
unordered_set::reserve
观察器
unordered_set::hash_function
unordered_set::key_eq
非成员函数
operator==operator!=(C++20 前)
std::swap
erase_if(C++20)
推导指引(C++17)
定义于头文件
template class unordered_set;
(1)
(C++11 起)
namespace pmr {
template using unordered_set = std::unordered_set; } (2) (C++17 起)unordered_set 是含有 Key 类型唯一对象集合的关联容器。搜索、插入和移除拥有平均常数时间复杂度。 在内部,元素并不以任何特别顺序排序,而是组织进桶中。元素被放进哪个桶完全依赖其值的哈希。这允许对单独元素的快速访问,因为哈希一旦确定,就准确指代元素被放入的桶。 不可修改容器元素(即使通过非 const 迭代器),因为修改可能更改元素的哈希,并破坏容器。 std::unordered_set 满足容器 (Container) 、知分配器容器 (AllocatorAwareContainer) 、无序关联容器 (UnorderedAssociativeContainer) 的要求。 成员类型 成员类型 定义 key_type Key value_type Key size_type 无符号整数类型(通常是 std::size_t ) difference_type 有符号整数类型(通常是 std::ptrdiff_t ) hasher Hash key_equal KeyEqual allocator_type Allocator reference value_type& const_reference const value_type& pointer std::allocator_traits::pointer const_pointer std::allocator_traits::const_pointer iterator 常遗留向前迭代器 (LegacyForwardIterator) const_iterator 常向前迭代器 local_iterator 类别、值、差、指针和引用类型都与 iterator 相同的迭代器类型。能用此迭代器在单个桶迭代,但不能跨桶。 const_local_iterator 类别、值、差、指针和引用类型都与 const_iterator 相同的迭代器类型。能用此迭代器在单个桶迭代,但不能跨桶。 node_type(C++17 起) 表示容器结点的结点把柄特化 insert_return_type(C++17 起) 描述插入 node_type 结果的类型,下列类型的特化 template struct /*unspecified*/ { Iter position; bool inserted; NodeType node; }; ,以模板实参 iterator 和 node_type 实例化。 成员函数 (构造函数) 构造 unordered_set (公开成员函数) (析构函数) 析构 unordered_set (公开成员函数) operator= 赋值给容器 (公开成员函数) get_allocator 返回相关的分配器 (公开成员函数) 迭代器 begin cbegin 返回指向起始的迭代器 (公开成员函数) end cend 返回指向末尾的迭代器 (公开成员函数) 容量 empty 检查容器是否为空 (公开成员函数) size 返回容纳的元素数 (公开成员函数) max_size 返回可容纳的最大元素数 (公开成员函数) 修改器 clear 清除内容 (公开成员函数) insert 插入元素或结点 (C++17 起) (公开成员函数) emplace 原位构造元素 (公开成员函数) emplace_hint 使用提示原位构造元素 (公开成员函数) erase 擦除元素 (公开成员函数) swap 交换内容 (公开成员函数) extract(C++17) 从另一容器释出结点 (公开成员函数) merge(C++17) 从另一容器接合结点 (公开成员函数) 查找 count 返回匹配特定键的元素数量 (公开成员函数) find 寻找带有特定键的元素 (公开成员函数) contains(C++20) 检查容器是否含有带特定键的元素 (公开成员函数) equal_range 返回匹配特定键的元素范围 (公开成员函数) 桶接口 begin(size_type) cbegin(size_type) 返回一个迭代器,指向指定的桶的开始 (公开成员函数) end(size_type) cend(size_type) 返回一个迭代器,指向指定的桶的末尾 (公开成员函数) bucket_count 返回桶数 (公开成员函数) max_bucket_count 返回桶的最大数量 (公开成员函数) bucket_size 返回在特定的桶中的元素数量 (公开成员函数) bucket 返回带有特定键的桶 (公开成员函数) 哈希策略 load_factor 返回每个桶的平均元素数量 (公开成员函数) max_load_factor 管理每个桶的平均元素数量的最大值 (公开成员函数) rehash 为至少为指定数量的桶预留存储空间。这会重新生成哈希表。 (公开成员函数) reserve 为至少为指定数量的元素预留存储空间。这会重新生成哈希表。 (公开成员函数) 观察器 hash_function 返回用于对关键哈希的函数 (公开成员函数) key_eq 返回用于比较键的相等性的函数 (公开成员函数) 非成员函数 operator==operator!=(C++20 中移除) 比较 unordered_set 中的值 (函数模板) std::swap(std::unordered_set)(C++11) 特化 std::swap 算法 (函数模板) erase_if(std::unordered_set)(C++20) 擦除所有满足特定判别标准的元素 (函数模板) 推导指引(C++17 起) 注意成员类型 iterator 与 const_iterator 可能是同一类型的别名。这表明以二个类型为参数类型的一对函数重载可能违背单一定义规则。因为 iterator 可转换为 const_iterator ,单个以 const_iterator 为参数类型的函数会是有效的。 |
CopyRight 2018-2019 实验室设备网 版权所有 |